// Gère les fenêtres, la résolution. SDL et opengl en général.


#ifndef LIGHT_WINDOW_HANDLER_H 
#define LIGHT_WINDOW_HANDLER_H

#include <SDL.h>
#include <GL/glew.h>
#include "Light_Debug.h"

SDL_Window* window=NULL;
SDL_GLContext glcontext=NULL;

int Light_NewWindow(int width, int height){

  if(window!=NULL){
  
    Light_PrintDebug("Erreur de fenêtrage : Une fenêtre est déjà ouverte !");
    return 1;
  
  }
  
  window=SDL_CreateWindow("Lighty", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN);
  glcontext=SDL_GL_CreateContext(window);
  GLenum glew_status=glewInit();
	
  if(glew_status!=GLEW_OK){
  
    Light_PrintDebug("Erreur de fenêtrage : Impossible d'appeler glew !");
	return 1;
		
  }
  
  SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
  SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1);
    
  if(window==NULL){
        
    printf("Erreur de fenêtrage : Impossible de créer une fenêtre !");
    return 1;
        
  }
  
  return 0;

}

void Light_ResizeWindow(int width, int height){
  
  SDL_SetWindowSize(window, width, height);
  SDL_GL_SwapWindow(window);

}

void Light_CloseWindow(){

  SDL_GL_DeleteContext(glcontext);
  SDL_DestroyWindow(window);
  window=NULL;
  glcontext=NULL;

}

#endif
